Programmable robot and user interface

ABSTRACT

A programmable robot system includes a robot provided with a number of individual arm sections, where adjacent sections are interconnected by a joint. The system furthermore includes a controllable drive mechanism provided in at least some of the joints and a control system for controlling the drive. The robot system is furthermore provided with user a interface mechanism including a mechanism for programming the robot system, the user interface mechanism being either provided externally to the robot, as an integral part of the robot or as a combination hereof, and a storage mechanism co-operating with the user interface mechanism and the control system for storing information related to the movement and further operations of the robot and optionally for storing information relating to the surroundings.

CROSS REFERENCE TO RELATED APPLICATIONS

This application is a continuation of application Ser. No. 13/414,071filed Mar. 7, 2012, which is a divisional of application Ser. No.12/281,528 filed Feb. 23, 2009, which is the National Stage ofInternational Application No. PCT/IB2007/050683, filed Mar. 2, 2007(which are hereby incorporated by reference).

TECHNICAL FIELD

The invention relates generally to programmable robot systems and robotsand more specifically to user interface means for such robots, jointsfor such robots, methods for programming of such robots and databasesfor storing information relating to the programming and operations ofthe robot system.

BACKGROUND OF THE INVENTION

Programmable robots for use in industry are generally known. Atraditional method of programming such robots consists of initiallyguiding the robot, for instance the tool or end effector on the robotarm from an initial point in space, for instance a pick-up locationthrough a desired path in space leading to a final destination of theend effector, where an object initially picked up may be delivered. Therobot or external control means are provided with storage means forstoring information relating to the above movement from an initial to afinal position. After this learning session the robot is able to repeatthe procedure and carry out the task to be performed. Instead of movingthe end effector of the robot through the desired path as describedabove a dedicated tracking device for tracking the desired path in spacemay also be employed, an example of such a system being for instanceshown in U.S. Pat. No. 5,495,410.

Generally, the programming of robots used in industry requiresspecialised knowledge and can only be performed by persons skilled inthe art, often referred to as system integrators. In connection withmulti-purpose robots for use in industry or even at home, it would beadvantageous to have access to a robot with user interface meansfacilitating quick and simple programming of the robot, includingre-programming from one task to another which can be performed by anyperson, not only a person with special skills within this art.

It would furthermore be advantageous to have access to a programmablerobot provided with simple means for avoiding hazards to thesurroundings such as collisions with surrounding equipment, boundariesor persons.

It would furthermore be advantageous to have access to a programmablerobot provided with means for storing a number of working scenarios,i.e. information on the specific working procedures, initial and finalpositions of the end effector and trajectories in space of the endeffector or other portions of the robot, characteristics of objects tobe approached and handled by the robot and information on thesurroundings limiting the allowable trajectories of portions of therobot, i.e. a description of the relevant characteristics, boundaries,objects, etc. in the surroundings.

SUMMARY OF THE INVENTION

The above and other objects are according to the present inventionattained by a programmable robot system, a control system for such arobot and user interface means for such a robot. The inventionfurthermore relates to a method for programming the robot using suchinterface means. The invention furthermore relates to a database forstoring information relating to programming and operation of a robot andto a joint for use in a robot.

It is specifically an object of the present invention to provide aprogrammable robot system which can be programmed in a simple and easymanner without this requiring specialised knowledge, i.e. which can beperformed for instance by an operator or technician in industry or evenby a private person for instance at home.

It is a further object of the invention to provide a programmable robotsystem which can easily be re-programmed to perform different operationsand thereby be used for performing different operations part-time in forinstance an industrial setting, thus avoiding the necessity of using anumber of dedicated robots which may only be required to operate lessthan full time.

It is a further object of the present invention to provide a method forprogramming a robot.

It is a further object of the present invention to provide a userinterface, which facilitates quick and straightforward programming of arobot.

These and further objects are according to the invention attained by arobot system comprising

-   (a) a robot comprising a number of individual arm sections, where    adjacent sections are joined by a joint;-   (b) controllable drive means provided in at least some of said    joints;-   (c) a control system for controlling said drive means,-   (d) user interface means either provided externally to the robot, as    an integral part of the robot or as a combination hereof;-   (e) storage means for storing information related to the movement    and further operations of the robot and optionally for storing    information relating to the surroundings.

According to a specific embodiment of the invention, the robot can beprovided with sensor means for sensing the position of various portions(for instance the joints and/or the end effector) of the robot relativeto the surroundings.

According to a specific embodiment of the invention said sensor meanscomprise one or more cameras, which can for instance be provided in thevicinity of the end effector and which can for instance be applied toidentify and recognise objects to be handled by the robot or otherrelevant objects, boundaries etc. in the surroundings.

The invention furthermore relates to a robot comprising:

-   (a) a robot comprising a number of individual arm sections, where    adjacent sections are interconnected by a joint;-   (b) controllable drive means provided in at least some of said    joints;-   (c) a control system for controlling said drive means;-   (d) attachment and drive means for a tool;

A very important aspect of the present invention relates to the userinterface. The user interface does thus not primarily address the personskilled in the art of setting up and programming industrial robots butrather anybody employed in an industrial setting or even at home whoquickly and yet reliably needs to apply a robot to a specific task or tochange the application of a robot from one task to another. According toa specific embodiment of the invention, the robot can be programmed andcontrolled from a standard personal computer running for instance aWindows program. An example of the programming of a robot according tothe invention is given in the detailed description of the invention.Such programming and control may of course also be performed from adedicated programming/control unit provided with a suitable man/machineinterface comprising for instance a computer mouse and/or touch screenor other display screen and/or a keyboard. The PC or programming/controlunit may also comprise the storage means described above.

The user interface according to the invention may alternatively bedistributed between an external user-accessible control means providedat appropriate portions of the robot, for instance on the variousjoints. Thus for instance the joints could be provided with controlbuttons for moving each individual joint during the initial programmingsession for instance in order to avoid collisions with objects orboundaries in the surroundings.

Such local control members on the appropriate parts of the robot couldif desired be supplemented with sensor means for sensing the proximityof for instance the joints or the end effector to objects or boundarieswhen the robot is actually working. Thus if one or more of said objectsor boundaries during a working session of the robot change theirpositions in space within certain limits, the robot will at least tosome extent be able to sense such changes and apply appropriate measuresto counteract detrimental effects of such changes.

By application of the user interface means of the invention, therelevant objects and boundaries in the surroundings may be located usingthe robot itself, for instance by moving the end effector—or for thatmatter any other part of the robot—to a number of points characterisingthe object or boundaries sufficiently. Thus for instance a planarboundary may be defined my moving the end effector to at least threepoints on the boundary and via the interface means specifying thecorresponding space coordinates, whereby a plane boundary will bespecified. A curved boundary of course requires a larger number ofCartesian coordinates to be specified, but under certain circumstances(for instance spherical or cylindrical objects or boundaries) otherco-ordinate systems may be applied for specifying their extension inspace.

According to a preferred embodiment of the invention, which will bedescribed in detail in the detailed description of the invention, theuser interface means comprises a display screen on which a picture ofthe robot and optionally also relevant portions of the surroundings isshown at least during the programming session of the robot. Thus, therobot could optionally be remotely programmed in cases where access tothe work area for some reason is undesired or even impossible, forinstance by initially specifying the position of the relevant objectsand boundaries of the work. Sequences showing the movement of the robotand the relevant portions of the surroundings corresponding to a numberof work areas and operations of the robot may be stored in the storagemeans and retrieved when the robot changes from one application toanother. Thus, in fact a database comprising all relevant workingscenarios of for instance an industrial plant may be graduallyestablished, which greatly facilitates application of the robot forvarious purposes in an industrial setting or even at home.

It is understood that although the robot itself, its control system andthe user interface used to program and/or control the robot in thepresent specification are described in terms of a single system, each ofthese entities could be used separately for instance in connection withother entities. Thus, also other controllable robots than the onedescribed by the various embodiments hereof could be programmed and/orcontrolled using the control system and/or user interface means of theinvention.

The present invention furthermore relates to a method for programming arobot according to the invention, a database for storing informationrelating to programming and operation of a robot and to a joint for usein a robot according to the invention. It is, however, understood thatthe method, database and joint according to the invention may also findapplication either together or separately in connection with otherrobots.

BRIEF DESCRIPTION OF THE DRAWINGS

The invention will be better understood with reference to the followingdetailed description of embodiments hereof in conjunction with thefigures, where

FIG. 1 shows a schematic perspective view of an embodiment of the robotaccording to the invention, set up to perform a simple pick-and-placeoperation, the view furthermore comprising definitions of Cartesian andspherical coordinates for characterising positions and orientations ofvarious components of the robot;

FIG. 2 shows a schematic perspective view of a second embodiment of therobot according to the invention comprising three joints;

FIG. 3 shows a schematic perspective view of a third embodiment of therobot according to the invention comprising four joints;

FIG. 4 shows a schematic perspective view of a fourth embodiment of arobot according to the invention (a so-called “Scara-robot”);

FIG. 5 shows a schematic cross sectional side view of a joint with themain components housed in the joint;

FIG. 6 shows a schematic cross sectional side view of two adjacentjoints and the bearings used in these joints.

FIG. 7 shows a schematic view of an opening page shown on a displayscreen on a user interface/user control unit used to programme andcontrol the robot, where the opening page basically comprises twoportions, a menu portion where a user can enter instructions to theprogramming/control system of the robot and an image of the actualphysical robot following the movements of the actual robot;

FIGS. 8 to 10 show a sequence of display screen images displayed to auser on the user interface during an initial sequence of steps to beperformed by the user during a programming session of the robot;

FIGS. 11( a) and (b) show a schematic view of a specific embodiment ofthe menu portion of the screen page used for programming the positionand orientation of the tool at the various waypoints along the path ofthe tool in space from an initial position to a final position and backto the initial position;

FIGS. 12 to 14 show schematic representations of screen pages presentedto the user during the remaining programming steps of the robot;

FIGS. 15 to 23 show a sequence of CAD images of a robot according to anembodiment of the invention displayed on the display screen of the userinterface during the various stages of an operation of the robot, therobot during programming being either controlled from the user interfaceas described in FIGS. 6 to 13 or being actually gripped by the user andguided through the waypoints along the path in space;

FIG. 24 shows a further embodiment of a screen image of a user interfaceaccording to the invention;

FIG. 25 shows a still further embodiment of a screen image of a userinterface according to the invention;

FIG. 26 shows a first embodiment of a six-axis robot according to theinvention;

FIG. 27 shows a second embodiment of a six-axis robot according to theinvention; and

FIG. 28 shows a cross sectional view through a robot joint according, toan embodiment of the invention.

DETAILED DESCRIPTION OF THE INVENTION

As mentioned, the present invention relates to a programmable robotsystem, i.e. both to the robot itself, to the control system used forcontrolling the movements and functions of the robot including its endeffector and storage means for storing pre-programmed movements andfunctions and relevant information about the objects to be handled bythe robot and about the surrounding, in which the robot is working. Theinvention furthermore relates to a user interface used for communicatingand controlling the robot at least during programming of the robot andfurthermore for retrieving pre-programmed scenarios and patterns ofmovements etc. of the robot so that it can be used to perform differenttasks for instance in an industrial setting without it being necessaryto re-programme the robot for each new task.

In the following there are shown various embodiments of the robot itselfand of the programming facilities (user interface) used to programme andcontrol the robot but it is understood that a person skilled in the artmay design modifications and variations to the embodiments actuallyshown without such modifications and variations falling outside thescope of the invention as defined by the appended claims.

According to an embodiment of the robot system according to theinvention, the robot is at least able to perform the followingoperations (functionalities): (a) a pick-and-place operation, (b) afilling operation, and (c) a palletising operation. These operations orfunctionalities are implemented using a number of basic, primitivefunctionalities:

1) Specification of position:

-   -   Fixed position: The robot/the tool itself is either drawn or        controlled from a user interface/control unit to the desired        position and the approach vector is defined by the direction to        the tool.    -   Pallet: A plurality or an array of positions is specified as        under “fixed position”, but optionally corners, number of rows        and columns or a pattern of positions could be specified.    -   Time-controlled position: According to this option, a fixed        position which an object is predicted to have reached a given        interval of time after the activation of a trigger is        determined.    -   Distance-controlled position: According to this option, a fixed        position which an object is predicted to have reached after        moving a certain distance after the activation of a trigger is        determined. This functionality requires that the velocity of the        object be known (for instance the velocity of a conveyor upon        which the object is placed).    -   Variable time-controlled position: According to this option, an        initial and a final position are determined by means of        time-controlled position. The exact position of the object        between these two positions can be determined on-line based on        time.    -   Variable distance-controlled position: According to this option,        an initial and a final position are determined by means of        distance-controlled position. The exact position of the object        between these positions can be determined on-line if the        velocity of the object is known.

2) Tracking:

-   -   Time-controlled tracking: According to this option, an initial        and final position is specified by means of time-controlled        position. The object is tracked between these two positions        based on time.    -   Distance-controlled tracking: According to this option, an        initial and a final position are specified by means of        distance-controlled position. The object is tracked between        these two positions based on the velocity of the object (for        instance measured by the velocity of a conveyor upon which the        object is placed).        3) Pattern of movement:    -   Intermediate positions or waypoints (of the tool) are defined by        the above-mentioned methods and a path in space is adapted to        these intermediate positions or waypoints.    -   A sequence of positions (of the tool) is recorded and stored        (dependent on the possibility of actually leading the robot (the        tool mounted on the robot or an arm or joint of the robot)        through a path in space without too much resistance from the        robot).

4) Triggers:

-   -   Distance-measuring means (“trip control”) for instance on a        conveyor belt.    -   Time    -   Sensor means, for instance light switch means, cameras, magnetic        sensors, etc.    -   Gripper sensor means.

5) Events/actions:

-   -   Tool approaching the object (via approach vector)    -   Tool moves away from the object    -   Activate the tool (gripper, sucking disc, paint pistol, etc.)    -   De-activate the tool (gripper, sucking disc, paint pistol, etc.)

Typical sequences of actions performed by the robot during the abovethree basic operations will comprise:

A typical pick-and-place operation:

(a) Pattern of movement: Move to fixed initial position(b) Trigger: Light switch(c) Pattern of movement: Move to distance-controlled position(d) Action: Approach object(e) Action: Activate tool(f) Action: Move away from object(g) Pattern of movement: Through waypoints to fixed position(h) Action: De-activate tool(i) Pattern of movement: Through waypoints to fixed initial position

A typical pattern of movement operation:

(a) Pattern of movement: Move to fixed initial position(b) Trigger: Light switch(c) Pattern of movement: Move to distance-controlled position(d) Tracking: Distance-controlled tracking(e) Action: Activate tool

(f) Trigger: Time

(g) Action: De-activate tool(j) Pattern of movement: Through waypoints to fixed initial position

A typical loading operation:

(a) Pattern of movement: Move to fixed initial position(b) Trigger: Light switch(c) Pattern of movement: Position sequence with timing(d) Pattern of movement: Through waypoints to fixed initial position

The user interface according to the invention comprises wizards, i.e.simple sequences of screen images or menus by means of which the usercan specify the standard operations to be performed by the robot. Awizard for the pick-and-place operation will comprise a sequence ofscreen images corresponding to the sequence of functions of primitivefunctionalities described above. Exemplary embodiments of such wizardswill be described in the following.

Referring to FIG. 1, there is shown a schematic perspective view of anembodiment of the robot according to the invention, set up to perform asimple pick-and-place operation, the view furthermore comprisingdefinitions of Cartesian and spherical coordinates for characterisingpositions and orientations of various components of the robot.Definitions of coordinates in relation to the base and joints of therobot are given in FIG. 1( a) and definitions of the position andorientation of the tool are given in FIG. 1( b).

In FIG. 1( a), the shown embodiment of a robot according to theinvention is generally designated by reference numeral 1 and consists ofa base 2, 2′ which can be attached to a surrounding structure, which isnot shown. The robot according to this embodiment of the inventionbasically consists of two arm sections 4, 5 and 7, 8 connected to thebase 2, 2′ and the wrist section 9, 9′, 10, 10′, 11, 11′ carrying a tool12, respectively, which as an example may consist of a gripper 12schematically shown in FIGS. 1( a) and (b). Between the base 2 and thefirst arm section 5 are provided first interconnecting means comprisingthe sections 3 and 3′. The first interconnecting means are mounted forrotation about the longitudinal axis Z through the base 2, 2′ asindicated by the angle α. This rotation is accomplished via a joint 2′.Similarly the first arm section 4, 5 is mounted for rotation about thelongitudinal axis 16 through the interconnecting means 3, 3′ asindicated by the angle β. The first arm section 4, 5 is coupled to thesecond arm section 7, 8 via second interconnecting means or joints 6,6′, about the longitudinal axis 17 of which the second arm section 7, 8is mounted for rotation (angle γ). At the opposite end of the secondarm, section 7, 8 is attached the wrist section 9, 9′, 10, 10′, 11, 11′carrying a tool 12. This section comprises three mutually perpendicularlongitudinal axes 18, 19 and 20 through corresponding interconnectingmeans 9, 10 and 11. By the above interconnecting means (or joints), thetool may be brought to any position in space within the robot's maximalrange of operation and the tool may furthermore be oriented (forinstance tilted) in any direction in space required for the actualoperational task of the tool.

For the six-joint embodiment described above, the orientation of eachjoint can be specified by the rotational angle about the correspondingaxis of rotation, i.e. the angles α, β, γ, δ, ε, μ in the figure.Alternatively, the position (for instance the X, Y, Z co-ordinates ofthe tool: (Xt, Yt, Zt)) and the orientation of the tool for instancedefined by the co-ordinates: roll, pitch, yaw can be specified. Theseco-ordinates are defined in FIG. 1( b). Specifically the co-ordinateroll denotes a rotation around the longitudinal axis y′ of the tool,pitch denotes a rotation around the lateral axis x′ through the tool andyaw denotes a rotation around the vertical axis z′ through the tool. Thecontrol system can determine the required set of angular orientations(rotational angles α, β, γ, δ, ε, μ) of the joints from theposition/orientation (X, Y, Z, roll, pitch, yaw) of the tool and viceversa.

Finally, FIG. 1( a) shows schematically the robot set-up for use in apick-and-place operation, where an object 14 (for instance a piece ofchocolate) is placed on a conveyor 13 for pick up and placement in a box15 placed adjacent the conveyor.

During this process, the tool of the robot travels from an initialpick-up position or waypoint w1 through a number of chosen waypoints w2,w3 to its final placement destination w4. According to the invention,the number and position in space of these waypoints can be specifiedduring the programming session of the robot as will be described indetail below.

In connection with FIG. 1, a specific embodiment of the robot accordingto the invention has been shown, but the robot according to theinvention may be constructed in a number of different ways, for instancecomprising different numbers of joints. Three such alternativeembodiments are shown in FIGS. 2, 3 and 4. Specifically FIG. 2 shows aschematic perspective view of a second embodiment of the robot accordingto the invention comprising three joint, and FIG. 3 shows a schematicperspective view of a third embodiment of the robot according to theinvention comprising four joints. FIG. 4 finally shows a schematicperspective view of a fourth embodiment of a robot according to theinvention (a so-called “Scara-robot”). The embodiment shown in FIG. 1makes it in principle possible for the tool to attain any position andorientation in space, but in cases where more restricted movements ofthe robot and more restricted positions and orientations of the tool arerequired, less complicated embodiments as for instance shown in FIGS. 2,3 and 4 may be applied.

Referring to FIG. 5 there is shown a schematic cross sectional side viewof an interconnecting means or joint according to an embodiment of theinvention comprising the main components: a transmission 22, a motor 23and encoding and controlling means 24. The latter comprises an encoderfor registering the rotational angle α, β, γ, δ, ε, μ of the particularjoint. The encoder could consist of an optical encoder(relative/incremental or absolute) for instance comprising a disc 26mounted for rotation with the motor 23 and provided with a pattern ofthrough openings through which a light beam from a light source placedin a housing 27 may penetrate. Encoders of this kind are known for avariety of purposes. The motor drive axle 25 running longitudinally inthe interconnecting means is hollow in order to allow for the passage ofelectrical leads, not shown, between the various portions of the robot.

Referring to FIG. 6 there is shown a schematic cross sectional side viewof two adjacent interconnecting means (joints) for instance in the wristsection of the robot and the bearings 28, 29 used in these means. Thebearings comprise bearing surfaces or bushes 28′, 28″, 29′, 29″ inclinedrelative to the longitudinal axis X through the joint. These bearingsare advantageous because a clearance or wobble-free bearing arrangementcan be obtained by means of two simple and inexpensive ball or rollerbearings instead of using so-called “crossed roller bearings”, which aremuch more expensive, but which can be made clearance or wobble free andtake up tilt and forces in all directions.

By using joints according to the invention as for instance shown inFIGS. 5 and 6, it is possible to provide a modular robot, which can bedesigned (for instance with respect to the number of joints) accordingto individual applications.

A very important aspect of the present invention is to provide a userinterface facilitating the programming and control of the robotaccording to the invention to such a degree that virtually any personmay be able to use the robot. The following paragraphs describe variousembodiments of such programming and control user interface means.

Referring to FIG. 7 there is shown an opening page of aprogramming/control software application according to the presentinvention to be displayed on a user interface 11. The user interface mayas mentioned be provided as a dedicated external programming/controlunit 11 a, a kind of “remote control” of the robot or it may beimplemented on a personal computer, together with an information storage11 b and a database 11 c as schematically depicted. It is, however, alsopossible to distribute the interface means, whereby a part of these, forinstance display screen and information storage means for storing chosenparameter combinations, and descriptions of the surroundings areprovided in an external unit, whereas guide and sensor means foractually guiding the robot through the path in space, which it mustfollow for performing the required task and for recording the positionsof the tool and joints in space, are provided as separate units, whichmight be placed at appropriate places on the robot programming. Suchseparate means may also be used for determining the position and specialextent of elements/obstacles and boundaries in the surroundings. Theopening page shown in FIG. 1 comprises basically a menu section (a) anda picture section (b), and in this example is shown a schematicperspective view of another embodiment of a robot according to thepresent invention somewhat differing from those described above.Although the following sequence of screen images shown in FIGS. 8 to 14show only the menu portion (a), preferably these images shown on thedisplay screen of the programming and control unit 11 a duringprogramming and/or control sessions will comprise both the menu portionshown in FIG. 1 under (a) and a CAD presentation of an appropriate robotas shown under (b) in FIG. 1 with the CAD image of the robot showncorresponding to the parameter choice of the corresponding menu portion.In other words, the CAD image moves with the changes of parametersettings performed by means of the menu portion. Also as mentioned theimage of the robot (b) may comprise graphical representations ofrelevant objects, boundaries etc. in the surroundings.

The robot according to the shown embodiment of the invention isgenerally designated by reference numeral 1 and comprises a base 2,joints 3, 4 and 5, arm sections 7 and 8 and an end effector 6 in theshown embodiment in form of a gripper. Optionally one or more visioncameras 10 may be provided on the robot, in the shown embodiment in thevicinity of the end effector.

The menu portion (a) generally designated by reference numeral 11contains the opening page of the control software application of theinvention and provides the user with a choice between the creation of anew program, 12, the retrieval of a pre-loaded program, 13, a test andcalibration procedure, 14 and the execution of the program, 15.

Assuming the user selects “Create new program”, 12, the menu portionshown in FIG. 8 appears (preferably together with the CAD picture of therobot as mentioned, although this picture is omitted from the followingfigures).

FIG. 8 shows the “Create new program” menu 16 chosen by the user. Inthis menu, the user may choose between different operations to beperformed by the robot. In the example shown in FIG. 8, these operationscomprise a “pick-and-place” operation 17, a “bottle filling operation”18, a “repeated motion” operation 19, a “stacking” operation 20 and anempty program 21, which may be specified by the user.

Assuming the user selects “pick and place”, the menu portion shown inFIG. 9 appears on the display screen of the programming and controlunit.

The pick-and-place operation comprises four actions to be performed bythe robot indicated by 23, 24, 25 and 26 on FIG. 9, and these may beactivated for instance by a computer mouse or by a touch in thecorresponding icon in case of a touch screen. Specifically 23 indicatesa pick operation, 24 indicates the movement to the destination via asequence of waypoints to be described below, 25 indicates the placeoperation performed by the end effector at the destination point and 26indicates the movement of the end effector back to the initial position.Using the menu shown in FIG. 8 and the subsequent figures, the wholepick-and-place operation can be defined and stored for subsequentautomatic execution by the robot.

Assuming the user chooses to define the pick operation, the icon 23 isactivated and the menu portion 31 shown in FIG. 10( a) will appear. Bypressing the position icon 35, the position/orientation assumed bydifferent portions of the robot can be specified. Thus, by pressing icon32 (tool position), the position of the tool in space at the pick-uppoint can be specified and by pressing icon 33 (tool orientation), theorientation of the tool at this point can be specified. The angularorientation (α, β, . . . ) of each of the robot joints can be specifiedif desired by pressing icon 34 (joints). In the example shown in FIG.10( a), the joint icon 34 has been pressed resulting in the angularorientation adjustment means indicated by reference numerals 37, 38, 39,40, 41 and 42 corresponding to each of the joints of the robot.Furthermore, the event triggering the operation of the tool can bespecified by pressing the trigger icon 36 as described below inconnection with FIG. 12.

An alternative screen picture 31′ corresponding to the one shown in FIG.10( a) is shown in FIG. 10( b), where a CAD-generated picture 101 of therobot is shown in the picture field 31″. By application of the icons102, 103 and 104, the robot, either the real robot or the CAD picture,can be rotated. The speed of rotation of the robot and/or of the robotjoints can be determined by means of the slice control icon 105, wherebyeither a coarse or fine adjustment of the robot will be possible.

Defining the position of the tool in space requires the specification ofthree co-ordinates. If accomplished from the user interface, this can bedone in a number of ways. One possibility would be to apply means on thedisplay screen corresponding to those shown in FIG. 10( a) or (b) foradjustment of the angular orientation of the joints, i.e. the screenpicture could contain three of the adjustment means shown in FIG. 10( a)or (b), one of these for specifying the X co-ordinate, one for the Yco-ordinate and one for the Z co-ordinate of the tool. Alternatively,the co-ordinates could be entered from a keyboard. As a furtheralternative, a screen picture as shown schematically in FIG. 11( a)could be used. It is understood that instead of specifying the positionof the tool by its Cartesian co-ordinates, other co-ordinate systems(spherical, cylindrical etc.) might be applied if desired. When thecontrol means specifying the position of the tool are manipulated, thepicture of the robot 43 moves correspondingly.

Referring to FIG. 11( a) there is thus shown a screen page 106 forspecifying the position of the tool. According to this embodiment, theX, Y, Z co-ordinates of the tool can be controlled by the correspondingarrow-shaped icons 107, 108 and 109 in FIG. 11( a). The speed ofadjustment can be set by means of the slide control icon 96. The icons93, 94 and 95 are introduced because a robot can comprise several jointconfigurations yielding the same Cartesian position of the tool. Bymeans of the icons 93, 94 and 95 it is possible to choose between eightof these. For instance, it is possible to choose between a configurationwhere the elbow of the robot is in an upper position or a lowerposition, etc.

Referring to FIG. 11( b) there is shown a screen page 110 for specifyingthe orientation of the tool by setting the co-ordinates: roll, pitch andyaw by means of arrow icons 98 and 97, respectively. The icons 99 and100 are used for positioning of the robot tool vertically andhorizontally, respectively.

As a further alternative for specifying the position of the tool (andits orientation and in fact all movements of the robot), a joystick or a3D-mouse might be used. A 3D-mouse could according to the invention beused for other programming and control purposes as well. For instance a3D-mouse could be used to record the position and spatial extent ofobjects and boundaries in the surroundings, such as obstacles to beavoided by the robot and boundaries of the work area at the applicationsite. As mentioned, this information might be stored in storage meansconnected to the control system for later retrieval and application.

Referring to FIG. 12 there is shown the menu portion 45 which willappear on the display screen of the user interface if icon 36 (trigger)is pressed on the menu portion shown in FIG. 10( a). Using the menuportion 45, various parameters defining the triggering of the toolduring the pick-up operation can be specified. Four such triggerparameters are indicated by reference numerals 46, 47, 48 and 49, but itis understood that other parameters might be used too. Specifically 46indicates an option where no triggering event is applied, i.e. the robotperforms the operation as fast as possible. Reference numeral 47indicates activation of the tool after the object has traveled a certaindistance, which can be specified on the menu portion 45, and which inthe example shown amounts to 10 cm after a trigger event, for instancethe passage of the object through a light switch. Alternatively asindicated by reference numeral 48, the tool may be activated after theobject has traveled for a given interval of time after the triggerevent, where the interval can be specified on the menu portion 45 andwhich in the example shown amounts to 0.01 seconds. As a furtheralternative, the tool may be provided by sensor means providing a signalto the control system of the robot, thereby activating the tool. Thisoption is indicated by reference numeral 49 in FIG. 12. It is possibleto choose between different sensors and/or sensor locations as indicatedby reference numeral 50.

The next step in the programming procedure is shown in FIG. 13 andconsists of specifying a suitable number of waypoints through which thetool of the robot shall move from an initial position to a finalposition and back to the initial position. The menu portion 51corresponding to this step is shown in FIG. 13. The path in space frominitial to final position of the tool can be the same as the pathfollowed by the tool on returning from the final to the initial positionbut different paths may also be chosen and specified if appropriate.After pressing icon 52, the waypoints can be specified by theirco-ordinates in space, for instance in the same manner as shown anddescribed previously in connection with FIG. 10. Alternatively, a3D-mouse or similar device may be positioned at the different waypointsand the corresponding co-ordinates be entered into the control system ofthe robot directly from the mouse. In fact, it could be possible totrace the whole continuous path in space of the tool and store this inthe control system instead of storing a number of distinct points inspace. In principle it may be possible under circumstances not tospecify any waypoints at all, but usually at least waypoint between theinitial and final position of the tool will be required. The chosennumber is indicated on the menu portion 51 at 53, and waypoints can beremoved or added at 54 and 55.

Referring to FIG. 14, the two remaining programming steps of apick-and-place operation is described, i.e. the specification of theposition and triggering of the place operation of the tool at the finalposition and the return of the tool to the initial position. Thespecification of these steps corresponds to the specification of theinitial position and triggering of the tool and the movement of the toolthrough a chosen number of waypoints from the initial to the finalposition of the tool and will hence only be described briefly in thefollowing. On the program portion 60 of the page, the previously chosenposition and triggering of the tool during pick up and movement frominitial to final position can be retrieved from icons 35, 36 and 52. Theposition and triggering events/methods/sensor means can be specified aticons 57 and the return path from final back to initial position can bespecified at icon 58.

After the specification of all pertinent parameters relating to thepick-and-place operation, the program is ready for execution. Startingthe program from icon 59 will result in both the physical robot and itspicture (CAD representation) on the screen carrying out the programmedoperations slowly in order to ascertain the correct and unimpededoperation of the robot. After this control step, the robot is ready fornormal operation.

An alternative embodiment of a program “wizard” used for programming therobot according to the invention will be briefly shown and described byreference to FIGS. 15 to 23. These figures show a sequence of CAD imagesof a robot according to an embodiment of the invention displayed on thedisplay screen of the user interface during the various programmingstages of the robot. The actual movement of the robot—and hence itsCAD-generated image on the interface screen—will in this case take placeby actually leading the physical robot through the various stepsperformed during programming of the robot. Alternatively, the robotmight be controlled in a manner corresponding to that describedpreviously in connection with FIGS. 7 to 14. In conjunction with thedescription of this sequence of movements of the robot means andprocedures for controlling the pick up of an object by the tool of therobot will be described specifically in connection with FIG. 18.

Referring to FIG. 15 there is thus shown a screen image of an openingpage 61 of the programming wizard according to this embodiment of theuser interface of the present invention. Specifically the page comprisesa menu portion 62 and an image (CAD representation) of a robot 63according to one embodiment of the invention. The robot 63 is providedwith a gripper tool 64 and two cameras 65 used (among other things) forspecifying the object to be gripped and handled by the robot. Thefollowing series of figures again relate to a pick-and-place operation,but it is understood that numerous other operations could also beprogrammed using this embodiment of a wizard according to the invention.The kind of operation is specified on the menu portion 62, in the shownexample comprising two operations: (1) place and (2) pick and place. Thelatter is chosen as mentioned.

Referring to FIG. 16 there is shown the page 66 presented to the userduring the programming operation. At 67 the user specifies whether theobject is to be picked up based on position, colour or sensor activatedposition. The colour option is chosen as indicated by the arrow.

Referring to FIG. 17 there is shown the next page 68 shown during theprogramming operation comprising the user indication of the region 70within which objects are to be picked up. As explained at 69, thisregion 70 is specified by actually leading the tool of the robot alongthe entire boundary of the region. Alternatively it might be sufficientto define the region 70 by a limited number of distinct points, forinstance the corners c1, c2, c3 and c4 of the region 70. This mightsuffice in case of pick-up regions of simple geometry. The Danish textat 69 actually reads in translation: “Now pull the robot along the edgeof the region in which it must look for objects, which it can pick up.[Continue>]”.

Referring to FIG. 18 there is shown the next page 71 used in a firststep in an object identification method according to the invention. Asindicated at 72 (in translation: “pull the robot to a height, where thewhole pick-up region can be seen in the picture. [Continue>]”) the toolof the robot is elevated above the defined pick-up region 70 to such anelevation that the whole pick-up region can be seen on the picture 73recorded by means of at least one of the cameras 65 placed adjacent thetool 64, a portion of which can be seen in the picture 73 together withthe picture 74′ of the object 74.

Referring to FIG. 19 there is shown the next page 75 presented to theuser and comprising the next step of the object identification orsegmentation method according to this embodiment of the invention. Thetext at 76 reads in translation: “Choose a segmentation method thatresults in the whole object—and only the object—being coloured blue.[Continue>]”. Different such methods could be applied but a specificmethod (“Method 2”) is chosen as indicated by the arrow in the field 77on page 75. The page 75 furthermore comprises the picture 73 recorded bythe at least one camera 65 with the picture of the object 74 as recordedby the camera. Furthermore, a second picture field 78 (“Segmentedpicture”) is shown on page 75 containing a segmented version 79 of theobject. Segmentation methods used in the invention could be based onblob-detection algorithms known from various image processingapplications, according to which “blobs” in an image, i.e. areas whoseluminosity is above or below a particular value, for instance the valueof the adjacent portions of the image, are identified. A segmentedpicture of the object 74, i.e. a picture of the object after imageprocessing can be shown on the second picture field 78, in FIG. 19indicated by reference numeral 79. According to the invention,segmentation can take place by clicking on a point (pixel) on theunprocessed image 74′ of the object 74, i.e. the object which must berecognised by the robot system or alternatively on the surroundingportions 81 of the picture 73. The object could for instance be a brownpiece of chocolate and the surroundings a conveyor belt of a differentcolour. Clicking on the picture 74′ of the object 74 results in thedisplay of a processed version 79 of the object. If the user decidesthat the processing has not been able to identify (distinguish theobject sufficiently well from the surroundings), the user may click onanother point (pixel) of the unprocessed picture 74 of the object andthereby attain a more satisfactory segmentation of the object. Variousother parameters of the segmentation process may also be adjusted fromthe user interface. After successful segmentation, the algorithm runningthe image processing can store information relating to the shape of thepicture of the object and use this information for later recognition ofobjects by the robot control system.

Referring to FIG. 20 there is shown the page 82 corresponding to thenext step in the programming operation, i.e. the step of specifying themovement of the tool in space from the initial pick-up point (I) to thefinal (placement) point (II). As indicated by reference numeral 83 (intranslation: “Now pull the robot from the pick-up area to the placearea. [Continue>]”, the user is now instructed to lead the physicalrobot (tool) through the desired path 84 in space and this path caneither be recorded and stored in its entirety in the control system ofthe robot or a number of specific waypoints along the path canalternatively be recorded and stored.

Referring to FIG. 21 there is shown the page 85 corresponding to theplacement operation in the pick-and-place operation. As indicated byreference numeral 86 (in translation: “Must the object be placed basedon: Position; Colour; Sensor activated position”, the user is asked toindicate whether the objects are to be placed based on position, colouror a sensor-activated position. In the example shown, the positionoption is chosen as indicated by the arrow.

Referring to FIG. 22 there is shown the page 87 used for userspecification of the positions 89, at which objects are to be placedduring the placement operation. As indicated by reference numeral 88 (intranslation: “Pull the robot around to those positions where it mustplace objects” [Continue>]), the user is instructed to lead the robot(tool) to those positions 89, where objects are to be placed. At each ofthese positions, the co-ordinates of the position are loaded into thecontrol system of the robot. Alternative procedures for indicating theplacement positions to the control system of the robot could also beused. Thus, for instance the “pallet” option mentioned previouslyaccording to which corners, number of rows and columns or a pattern ofpositions are specified could be used as an alternative.

Referring to FIG. 23 there is shown the last page 90 of the programmingwizard according to this embodiment of the invention. As indicated byreference numeral 91 (in translation: “Task definition completed. Presscontinue in order to carry out slow test of the program. [Continue>]),the programming of the robot is finished and a slow control andsupervision operation of the robot can be performed by pressing icon 92on page 90.

According to the invention programming of the robot is facilitated by anumber of features of the user interface and/or control system of therobot. Thus according to a specific embodiment of the invention, theuser interface comprises 3D graphical display means for showing agraphical 3D representation of the robot and optionally also itssurroundings. The 3D representation of the robot moves duringprogramming and optionally also during actual operation of the robot onthe display, which greatly facilitates programming of the robot, alsotaking the risk of collision of robot parts with the surroundings intoaccount. Furthermore, programming of the robot is greatly facilitated bythe use of wizards as already described and these wizards can accordingto the invention comprise stored templates corresponding to specificoperations, which templates can be pre-programmed in the control systemor user interface of the robot. Thus, a person skilled in the art ofrobot programming can create and store templates in the robot system orinterface according to the invention with the effect that a user,lacking routine in robot programming, can program the robot to carry outeven quite complicated tasks, without the user being forced to make morechoices during programming of the robot than absolutely necessary. Thismakes programming quicker and easier and shortens the time needed for aninexperienced user to familiarise himself with and actually carry outthe programming of the robot.

At any step during programming (and optionally during a subsequent showtest run of the program on the robot and/or during actual operation ofthe robot), the user has a choice between a 3D representation of therobot on the display of the user interface (to give an overview of theoperation of the robot) and the display of actual parameter values,co-ordinates etc. at a given instance of the operation. As mentioned, a3D representation may also comprise the surroundings of the robot. Theability according to the invention to shift between 3D representationsof the robot and surroundings and sets of actual parameter values,co-ordinates, etc. greatly facilitates programming and optimisation ofthe movement of the robot, which—possibly together with theabove-mentioned pre-programmed templates—makes programming and operationof the robot according to the invention very easy even for aninexperienced person.

As mentioned, the robot itself may also by use of the above mentionedencoding and controlling means 24 in the joints of the robot and/oradditional sensors provided on the robot be used for programming therobot, i.e. for specifying the path of movement in space of the toolmounted on the robot and/or other parts of the robot, without thenecessity to calibrate the system, as the robot uses the same sensors,encoders, etc. to indicate the position, the user wishes to define andto actually bring the robot to the desired position. Using the robotitself (via the sensors, encoders, etc.), also objects in thesurroundings, such as objects to be picked up or obstacles to beavoided, can be specified with the robot. For a person not familiar withrobot control via an interface this may be an intuitively preferred wayof programming the robot. The execution of the program attained andstored in this manner may afterwards be monitored on the display on theuser interface and modified if required. Thus, a first, roughprogramming of the robot can be performed using the robot itselffollowed by a finer, detailed adjustment of the programming, which mayresult in a faster and even more optimal programming of the robot, inparticular when programming is performed by an inexperienced user.

Referring to FIG. 24 there is shown a further embodiment of a screenimage of a user interface according to the invention. The image showsboth a 3D graphical representation 111 of a robot 112 according to anembodiment of the invention and a list of program steps 113corresponding to a virtual or actual operation (movement throughwaypoints and actions to be performed at different steps during theexecution of the program) of the robot. On the 3D representation thereis shown the path of movement 114 of the outermost portion/tool 116 ofthe robot 112 through a sequence of waypoints 115 (a total of sevenwaypoints are mentioned in the list of program steps 113, one of thesebeing hidden behind the robot in the graphical representation). The step“action” in the list of steps 113 triggers a specific action of the toolthat is carried out when the tool arrives at a specific waypoint (forinstance that a voltage is applied to one of the digital output channelsof the robot system, which causes the activation of a spray nozzle onthe tool, spraying for instance paint on an object. In this manner it ispossible to indicate the point on the path of movement 114 at whichspraying is to begin). The shadow image 117 of the robot corresponds tothe waypoint indicated by 118 in FIG. 24. The shadow image of the robotindicates the virtual movement of the robot and the virtual position ofthe robot at the different waypoints, thereby giving the user anindication of how the different parts (joints, arm sections and tool) ofthe real robot will be located in real space, when the tool ispositioned in a specific waypoint. If, for instance, a 3D graphicalrepresentation of obstacles or prohibited regions in the surroundings ofthe robot is also incorporated on the screen image, a user may forinstance decide whether there is a risk of collision of portions of therobot with objects in the surroundings and whether modifications of thepath of movement of different portions of the robot may be required inorder to ascertain that no collisions occur during real operation of therobot.

Referring to FIG. 25 there is shown another screen image on the userinterface according to the invention comprising a 3D representation 119of the robot, a field 120 specifying movements of the tool (differentmovements of the tool being accomplished by pressing the icons 121, 122,123, 124 and 125). Using the arrow icons it is possible for the user tochange the position and/or the orientation of the tool (in a mannersomewhat resembling that, which is described in connection with FIG. 11(a) above). According to the shown embodiment, the manipulations of thetool by means of icons 121 to 125 take place in relation to the samepoint of view as the 3D representation indicated by reference numeral119 in FIG. 25.

Furthermore, the screen image comprises a field 122 (“Move joints”), bymeans of which the user may move (rotate) each specific joint separatelyinstead of moving the tool (field 120), where movement of the toolnormally results in more than one joint moving (rotating)simultaneously. Using the “Move joints” facility can be useful forinstance in those cases, where it is apparent for the user that thedesired position of the tool can be attained by simply controlling asingle joint. The numerical values 126 could indicate the relativerotation of each specific joint or the relative rotation of the basejoint (in radians or degrees), but other indications could be used andare at any rate not of prime importance for an average used. Theindications may be omitted altogether, if desired. The position of thetool in XYZ-coordinates is indicated at 127. Icons referred to by 128,129 and 130 enable a choice of different configuration spaces. Inpractice the robot can arrive at one and the same position andorientation (pose) of the tool in a number of different manners. Therobot according to this embodiment of the invention have eight differentmanners in which a given pose of the toll can be attained. Thus forinstance the elbow portion of the robot may face either upwards ordownwards. The shoulder portion may also be turned 180 degrees and thewrist may also be turned such that the “hand” faces the base of therobot.

With reference to FIGS. 26 and 27 there are shown two embodiments of asix-axis robot according to the invention. The cinematic construction ofthis robot is chosen such that the following characteristics areobtained:

-   (1) The construction of each joint is as simple as possible.-   (2) The robot comprises a minimum of different types of joints.-   (3) The members connecting each joints are light-weight, rigid and    as inexpensive as possible.-   (4) The design of the robot ensures a ration between the payload and    the weight of the robot itself of at least 1/3.

In order to make each robot joints as simple as possible, each joint hasonly one degree of freedom—rotation about an axis through the joint—andthe connections of the joint with the connecting members are provided atan angle of 90 degrees relative to each other.

Referring to FIG. 26 there is shown a first embodiment of a six-axisrobot according to the invention having the above characteristics. Therobot comprises the axes A1 through A6. This robot has the cinematicstructure: Roll-Pitch-Pitch-Pitch-Roll-Yaw and comprises only two typesof joints, three of each type, two types of connecting members in theform of tubes with thin walls, one angle member and one foot member.

With reference to FIG. 27 there is shown a second embodiment of asix-axis robot according to the invention having the abovecharacteristics. The robot comprises the axes A1 through A6. This robothas the following cinematic structure: Roll-Pitch-Pitch-Roll-Pitch-Rolland comprises three types of joints, two of each type, two types ofconnecting members in the form of tubes with thin walls, each comprisinga corresponding adapter flange and a foot member.

With reference to FIG. 28 there is shown a cross sectional view througha joint according to an embodiment of the invention. The joint comprisesmechanical, electro-mechanical, electronic and optical elements that aremutually interconnected, either directly via electrical connectors orvia wireless, for instance optical, coupling to other elements. In orderto ensure the most simple and straightforward mounting and connection ofthese elements it is advantageous if as many as possible of theseelements are provided on one printed circuit board 131 (PCB). A crosssectional view through an embodiment of a joint, which can be used inthe six-axis robots shown in FIGS. 26 and 27 is shown in FIG. 28, but itis understood that this joint could, also be used in connection withother robots.

In the shown embodiment, optical encoders 132, 133 are used and a safetybrake 134, 135 is implemented using a very small solenoid 134. The brakeis designed such that the solenoid 134 can activate and deactivate thebrake with a very limited force.

The encoder 133 used for determining the position (angular orientationof the axle/rotor) of the motor (angular orientation) is mounted at therear surface of the PCB 131. The motor shown in FIG. 28 comprises astator part 136 and a rotor part 137.

The encoder 132 used for determining the angular orientation of theoutput axle 138 or output flange 139 of the joint is mounted on thefront surface of the PCB or in a socket on the front surface of the PCB131. Preferably a high resolution encoder is used and the short distancebetween the hollow axle 138 and the encoder is important in order toattain a proper positioning of sensor and encoder disc relative to eachother. In order to be able to sense the movement (rotation) of theoutput flange 139 at the PCB 131 through the joint the encoder disc 140is mounted on the hollow axle 138 through which electrical andpneumatical connections 141 are guided through the joint and the hollowaxle 138 is connected to the output flange 139.

The safety brake 134, 135, which stops the robot 137 for instance atpower drop-out, is formed as an integral part with the PCB 131. Thesolenoid 134, which in the event of power drop-out displaces a ratchet142 into engagement with an annular member 135 mounted on the motor axle143, is mounted directly on the PCB 131. This annular member 135(friction ring) can rotate relative to the motor axle, but there is ahigh friction between the annular member and the motor axle 143. Thisensures a controlled halt of the joint but without halting the joint soabruptly that the robot arm becomes overloaded. In the figure, frictionbetween the annular member 135 and the motor axle 143 is ensured byO-rings 144 tightly fitted between the motor axle 143 and the annularmember 135 (friction ring).

Furthermore, the joint according to this embodiment of the invention isdesigned such that adjacent joints can be attached to each other withoutuse of further elements. Attachment of the joint to an adjacent joint orconnecting member (for instance a thin-walled tube) takes place via theoutput flange 139 and the connecting portion 145 on the housing 146 ofthe joint. Apart from this, robot joints according to the invention canbe coupled together by suitable members, for instance thin-walled tubes,which constitutes a preferred choice due to their optimalrigidity/weight ratio. Furthermore, the joint according to thisembodiment of the invention comprises a seal 147 between the housing 146and the output flange 139, main bearings 148 resting against inclinedinner surface portions (bearing surfaces) 155 provided in the housing146, sealed bearings 149, transmission 150, at least one passage 151 forconnections from an adjacent joint or connecting member, an area/space(152) for a slip ring and for twisting wires 141, when the outputmembers 138, 139 rotate, further bearings 153 and a plate 154, forinstance of aluminium or other suitable material, for mounting the PCB131 and also for acting as a heat sink for power electronics in thejoint.

Instead of a pair of thrust angular-contact needle bearings shown in thefigure as the main bearing arrangement in the joint, a single four pointof contact ball bearing or a single crossed roller bearing or a pair ofangular contact ball bearings could be used.

Furthermore, instead of the shown eccentric gear arrangement with asingle eccentric pinion, an eccentric gear arrangement with 2 pinions,phaseshifted 180 degrees, or 3 pinions, phase shifted 120 degrees couldbe used. Alternatively, a harmonic drive gear can be used in the unit,either with or without an integrated output bearing.

Although a number of specific embodiments have been shown and describedabove, it is understood that the present invention, both the robotitself, the user interface means used for programming and controllingthe robot and the entire control system as such may be implemented in anumber of different ways. Thus, for instance numerous alternative menupages on the user interface may be designed. The scope of the inventionis thus defined by the appended claims including technical equivalentsof these. It is furthermore understood that the user interface means ofthe invention may also be used in connection with other robots thanthose shown, described and claimed in the present application and thatthis also applies to the electro-mechanical elements of the robot, suchas the joints with drive means, encoders, etc.

1. A joint for a robot comprising: a housing; an output member which isrotatably mounted in the housing; a motor mounted in the housing, themotor having a motor axle which rotates the output member relative tothe housing; a safety brake placed in the housing, the safety brakecomprising an annular member mounted on the motor axle, where theannular member rotates relative to the motor axle, but with frictionbetween the annular member and the motor axle, and a solenoid which uponactivation of the brake displaces a ratchet into engagement with theannular member to slow the rotation of motor axle relative to thehousing; a first encoder in the housing which senses an angularorientation of the output member relative to the housing; and a secondencoder in the housing which senses an angular orientation or rotationof the motor axle relative to the housing.
 2. The joint according toclaim 1, wherein the friction between the annular member and the motoraxle imparts a controlled braking of the rotation of output member. 3.The joint according to claim 2, wherein the friction is of such a sizethat overloading of the joint during the controlled braking isprecluded.
 4. The joint according to claim 1, wherein said solenoid ismounted on a printed circuit board (PCB) that is fixed relative to thehousing.
 5. The joint according to claim 1, wherein the output member isat least one of an output axle or an output flange for coupling to anadjacent joint or connecting member of a robot; and further comprising aconnecting portion for coupling the housing to a second adjacent jointor second connecting member of the robot.
 6. The joint according toclaim 5, wherein the output member includes both of the output axle andthe output flange.
 7. The joint according to claim 5, wherein saidconnecting portion is provided substantially at 90 degrees relative tosaid output axle or said output flange.
 8. The joint according to claim6, wherein said connecting portion is provided substantially at 90degrees relative to said output axle and output flange.
 9. The jointaccording to claim 1, wherein the housing is provided with a space foraccommodating connecting mechanisms.
 10. The joint according to claim 1,wherein the housing includes a longitudinal axis about which the outputmember rotates, and further comprising bearings resting against at leastone of opposed inner surface portions, bearing surfaces or bushes of thehousing and of the output member which are inclined relative to thelongitudinal axis X of the housing.
 11. A robot comprising: (a) a numberof individual arm sections, where adjacent said arm sections areinterconnected by a respective joint; (b) a controllable drive providedin at least some of said joints; (c) a control system for controllingsaid controllable drive; (d) an attachment and a drive for a tool;wherein each said joint comprises a housing an output member which isrotatably mounted in the housing; a motor mounted in the housing, themotor having a motor axle which rotates the output member relative tothe housing; a safety brake placed in the housing, the safety brakecomprising an annular member mounted on the motor axle, whereby theannular member rotates relative to the motor axle, but with frictionbetween the annular member and the motor axle, and a solenoid which uponactivation of the brake displaces a ratchet into engagement with theannular member to slow the rotation of motor axle relative to thehousing; a first encoder in the housing which senses an angularorientation of the output member relative to the housing; and a secondencoder in the housing which senses an angular orientation or rotationof the motor axle relative to the housing.
 12. The robot according toclaim 11, wherein the friction between the annular member and the motoraxle imparts a controlled braking of the joint.
 13. The robot accordingto claim 12, wherein the friction is of such a size that overloading ofthe joint during braking is precluded.
 14. The robot according to claim13, wherein said solenoid is mounted on a printed circuit board (PCB)that is fixed relative to the housing of the joint.
 15. The robotaccording to claim 11, comprising at least two joints connected to eachother without interconnecting arm sections.